package com.guigu.guliorder.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.guigu.gulicommon.entity.pojo.res.Res;
import com.guigu.gulicommon.entity.vo.OmsOrderVo;
import com.guigu.guliorder.entity.OmsOrder;
import com.guigu.guliorder.entity.dto.SubmitOrderDto;
import com.guigu.guliorder.entity.pojo.CreatOrderPoJo;
import com.guigu.guliorder.entity.vo.OrderConfirmsVo;

/**
 * <p>
 * 订单 服务类
 * </p>
 *
 * @author 陈俊杰
 * @since 2024-08-15
 */
public interface IOmsOrderService extends IService<OmsOrder> {

    /**
     * 获取订单防冲令牌
     *
     * @return 订单防冲令牌
     */
    Res<String> getOrderToken();

    /**
     * 提交订单
     *
     * @param dto 提交订单数据
     * @return 提交订单结果
     */
    Res<CreatOrderPoJo> submitOrder(SubmitOrderDto dto);

    /**
     * 获取订单详情
     */
    Res<OrderConfirmsVo> getOrderDetail();

    /**
     * 根据订单号获取订单状态
     *
     * @param orderSn 订单号
     * @return 订单
     */
    Res<OmsOrderVo> getOrderStatusBySn(String orderSn);
}
